package com.ctg.itrdc.imageconsole.data.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Component;

import com.ctg.itrdc.imageconsole.data.dao.IK8sNamespaceDao;
import com.ctg.itrdc.imageconsole.data.dto.K8sNamespaceDTO;
import com.ctg.itrdc.imageconsole.data.entity.K8sNamespace;
import com.ctg.itrdc.paspsdk.common.entity.PageInfo;
import com.ctg.itrdc.paspsdk.common.utils.type.StringUtils;
import com.ctg.itrdc.paspsdk.data.dao.impl.BaseDaoImpl;
import com.ctg.itrdc.paspsdk.data.entity.ClassInfoUtils;

@Component("k8sNamespaceDao")
public class K8sNamespaceDaoImpl extends BaseDaoImpl implements IK8sNamespaceDao {

	@Override
	public PageInfo<K8sNamespaceDTO> jdbcFindPageInfo(K8sNamespaceDTO K8sNamespaceDTO, Integer pageNum,
			Integer pageSize) {
		String columnsName = ClassInfoUtils.getColumnsName(K8sNamespace.class);
		String tableName = ClassInfoUtils.getTableName(K8sNamespace.class);
		StringBuilder sql = new StringBuilder(" SELECT ");
		sql.append(columnsName).append(" FROM ").append(tableName).append(" A WHERE 1=1 ");

		List<Object> params = new ArrayList<Object>();

		if (StringUtils.isNotEmpty(K8sNamespaceDTO.getClusterCode())) {
			sql.append(" AND CLUSTER_CODE = ? ");
			params.add(K8sNamespaceDTO.getClusterCode());
		}
		if (StringUtils.isNotEmpty(K8sNamespaceDTO.getNamespaceName())) {
			sql.append(" AND NAMESPACE_NAME LIKE ? ");
			params.add("%" + K8sNamespaceDTO.getNamespaceName() + "%");
		}
		if (StringUtils.isNotEmpty(K8sNamespaceDTO.getNamespaceCode())) {
			sql.append(" AND NAMESPACE_CODE LIKE ? ");
			params.add("%" + K8sNamespaceDTO.getNamespaceCode() + "%");
		}
		if (StringUtils.isNotEmpty(K8sNamespaceDTO.getStatus())) {
			sql.append(" AND STATUS = ? ");
			params.add(K8sNamespaceDTO.getStatus());
		}
		sql.append(" ORDER BY CREATE_TIME DESC");
		return (PageInfo<K8sNamespaceDTO>) this.jdbcFindPageInfo(sql.toString(), K8sNamespaceDTO.class, params, pageNum,
				pageSize, true);
	}



}
